Index: netcat-openbsd-1.89/netcat.c
===================================================================
--- netcat-openbsd-1.89.orig/netcat.c	2008-01-22 20:39:46.000000000 -0500
+++ netcat-openbsd-1.89/netcat.c	2008-01-22 20:43:36.000000000 -0500
@@ -819,11 +819,18 @@
 void
 build_ports(char *p)
 {
+	struct servent *sv;
 	char *n, *endp;
 	int hi, lo, cp;
 	int x = 0;
 
-	if ((n = strchr(p, '-')) != NULL) {
+	sv = getservbyname(p, uflag ? "udp" : "tcp");
+	if (sv) {
+		portlist[0] = calloc(1, PORT_MAX_LEN);
+		if (portlist[0] == NULL)
+			err(1, NULL);
+		snprintf(portlist[0], PORT_MAX_LEN, "%d", ntohs(sv->s_port));
+	} else if ((n = strchr(p, '-')) != NULL) {
 		if (lflag)
 			errx(1, "Cannot use -l with multiple ports!");
 
